package org.example.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.example.domain.dto.ErpMaterialDTO;
import org.example.domain.po.ErpMaterial;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.example.domain.po.ErpMaterialExtend;
import org.example.domain.po.ErpUnit;

import java.util.List;

/**
* @author 3400
* @description 针对表【erp_material(产品表)】的数据库操作Mapper
* @createDate 2024-10-30 16:28:35
* @Entity org.example.domain.po.ErpMaterial
*/
public interface ErpMaterialMapper extends BaseMapper<ErpMaterial> {
    Page<ErpMaterial> findByPage(Page<ErpMaterial> page,
                                 @Param("categoryId") String categoryId,
                                 @Param("color") String color,
                                 @Param("keyword") String keyword,
                                 @Param("position") String position,
                                 @Param("mfrs") String mfrs,
                                 @Param("weight") String weight,
                                 @Param("expiryNum") String expiryNum,
                                 @Param("remark") String remark,
                                 @Param("enabled") String enabled,
                                 @Param("tenantId") Long tenantId);


    int insertMaterial(ErpMaterial material);
    int deleteMaterial( @Param("id") Long id);
    int checkIfUsed(@Param("id") Long id);
    Long max();
    int updateMaterial(ErpMaterial material);

    Page<ErpMaterialDTO> selectAggregatedData(Page<ErpMaterialDTO> page,
                                              @Param("depotId") Long depotId, @Param("tenantId") Long tenantId);
    // 调用 select 查询的方法
    List<ErpMaterialDTO> select(@Param("depotId") Long depotId,@Param("headerId") Long headerId, @Param("tenantId") Long tenantId);
    List<ErpMaterialDTO> select2(@Param("depotId") Long depotId,@Param("materialId") Long materialId, @Param("tenantId") Long tenantId);

}




